package com.ruyuan.seckill.domain;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.ruyuan.seckill.annotation.Column;
import com.ruyuan.seckill.annotation.Id;
import com.ruyuan.seckill.annotation.PrimaryKeyField;
import com.ruyuan.seckill.annotation.Table;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

@Table(name = "es_goods")
@ApiModel
@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
public class GoodsDO implements Serializable {

    private static final long serialVersionUID = 9115135430405642L;

    /**
     * 主键
     */
    @Id(name = "goods_id")
    @ApiModelProperty(hidden = true)
    private Integer goodsId;
    /**
     * 商品名称
     */
    @Column(name = "goods_name")
    @ApiModelProperty(name = "goods_name", value = "商品名称", required = false)
    private String goodsName;
    /**
     * 商品编号
     */
    @Column(name = "sn")
    @ApiModelProperty(name = "sn", value = "商品编号", required = false)
    private String sn;
    /**
     * 品牌id
     */
    @Column(name = "brand_id")
    @ApiModelProperty(name = "brand_id", value = "品牌id", required = false)
    private Integer brandId;
    /**
     * 分类id
     */
    @Column(name = "category_id")
    @ApiModelProperty(name = "category_id", value = "分类id", required = false)
    private Integer categoryId;
    /**
     * 商品类型normal普通point积分
     */
    @Column(name = "goods_type")
    @ApiModelProperty(name = "goods_type", value = "商品类型NORMAL普通POINT积分", required = false)
    private String goodsType;
    /**
     * 重量
     */
    @Column(name = "weight")
    @ApiModelProperty(name = "weight", value = "重量", required = false)
    private Double weight;
    /**
     * 上架状态 1上架 0下架
     */
    @Column(name = "market_enable")
    @ApiModelProperty(name = "market_enable", value = "上架状态 1上架  0下架", required = false)
    private Integer marketEnable;
    /**
     * 详情
     */
    @Column(name = "intro")
    @ApiModelProperty(name = "intro", value = "详情", required = false)
    private String intro;
    /**
     * 商品价格
     */
    @Column(name = "price")
    @ApiModelProperty(name = "price", value = "商品价格", required = false)
    private Double price;
    /**
     * 成本价格
     */
    @Column(name = "cost")
    @ApiModelProperty(name = "cost", value = "成本价格", required = false)
    private Double cost;
    /**
     * 市场价格
     */
    @Column(name = "mktprice")
    @ApiModelProperty(name = "mktprice", value = "市场价格", required = false)
    private Double mktprice;
    /**
     * 是否有规格0没有 1有
     */
    @Column(name = "have_spec")
    @ApiModelProperty(name = "have_spec", value = "是否有规格0没有 1有", required = false)
    private Integer haveSpec;
    /**
     * 创建时间
     */
    @Column(name = "create_time")
    @ApiModelProperty(name = "create_time", value = "创建时间", required = false)
    private Long createTime;
    /**
     * 最后修改时间
     */
    @Column(name = "last_modify")
    @ApiModelProperty(name = "last_modify", value = "最后修改时间", required = false)
    private Long lastModify;
    /**
     * 浏览数量
     */
    @Column(name = "view_count")
    @ApiModelProperty(name = "view_count", value = "浏览数量", required = false)
    private Integer viewCount;
    /**
     * 购买数量
     */
    @Column(name = "buy_count")
    @ApiModelProperty(name = "buy_count", value = "购买数量", required = false)
    private Integer buyCount;
    /**
     * 是否被删除0 删除 1未删除
     */
    @Column(name = "disabled")
    @ApiModelProperty(name = "disabled", value = "是否被删除0 删除 1未删除", required = false)
    private Integer disabled;
    /**
     * 库存
     */
    @Column(name = "quantity")
    @ApiModelProperty(name = "quantity", value = "库存", required = false)
    private Integer quantity;
    /**
     * 可用库存
     */
    @Column(name = "enable_quantity")
    @ApiModelProperty(name = "enable_quantity", value = "可用库存", required = false)
    private Integer enableQuantity;
    /**
     * 如果是积分商品需要使用的积分
     */
    @Column(name = "point")
    @ApiModelProperty(name = "point", value = "如果是积分商品需要使用的积分", required = false)
    private Integer point;
    /**
     * seo标题
     */
    @Column(name = "page_title")
    @ApiModelProperty(name = "page_title", value = "seo标题", required = false)
    private String pageTitle;
    /**
     * seo关键字
     */
    @Column(name = "meta_keywords")
    @ApiModelProperty(name = "meta_keywords", value = "seo关键字", required = false)
    private String metaKeywords;
    /**
     * seo描述
     */
    @Column(name = "meta_description")
    @ApiModelProperty(name = "meta_description", value = "seo描述", required = false)
    private String metaDescription;
    /**
     * 商品好评率
     */
    @Column(name = "grade")
    @ApiModelProperty(name = "grade", value = "商品好评率", required = false)
    private Double grade;
    /**
     * 缩略图路径
     */
    @Column(name = "thumbnail")
    @ApiModelProperty(name = "thumbnail", value = "缩略图路径", required = false)
    private String thumbnail;
    /**
     * 大图路径
     */
    @Column(name = "big")
    @ApiModelProperty(name = "big", value = "大图路径", required = false)
    private String big;
    /**
     * 小图路径
     */
    @Column(name = "small")
    @ApiModelProperty(name = "small", value = "小图路径", required = false)
    private String small;
    /**
     * 原图路径
     */
    @Column(name = "original")
    @ApiModelProperty(name = "original", value = "原图路径", required = false)
    private String original;
    /**
     * 卖家id
     */
    @Column(name = "seller_id")
    @ApiModelProperty(name = "seller_id", value = "卖家id", required = false)
    private Integer sellerId;
    /**
     * 店铺分类id
     */
    @Column(name = "shop_cat_id")
    @ApiModelProperty(name = "shop_cat_id", value = "店铺分类id", required = false)
    private Integer shopCatId;
    /**
     * 评论数量
     */
    @Column(name = "comment_num")
    @ApiModelProperty(name = "comment_num", value = "评论数量", required = false)
    private Integer commentNum;
    /**
     * 运费模板id
     */
    @Column(name = "template_id")
    @ApiModelProperty(name = "template_id", value = "运费模板id", required = false)
    private Integer templateId;
    /**
     * 谁承担运费0：买家承担，1：卖家承担
     */
    @Column(name = "goods_transfee_charge")
    @ApiModelProperty(name = "goods_transfee_charge", value = "谁承担运费0：买家承担，1：卖家承担", required = false)
    private Integer goodsTransfeeCharge;
    /**
     * 卖家名字
     */
    @Column(name = "seller_name")
    @ApiModelProperty(name = "seller_name", value = "卖家名字", required = false)
    private String sellerName;
    /**
     * 0 需要审核 并且待审核，1 不需要审核 2需要审核 且审核通过 3 需要审核 且审核未通过
     */
    @Column(name = "is_auth")
    @ApiModelProperty(name = "is_auth", value = "0 待审核，1 审核通过 2 未通过", required = false)
    private Integer isAuth;
    /**
     * 审核信息
     */
    @Column(name = "auth_message")
    @ApiModelProperty(name = "auth_message", value = "审核信息", required = false)
    private String authMessage;

    /**
     * 下架原因
     */
    @Column(name = "under_message")
    @ApiModelProperty(name = "under_message", value = "下架原因", required = false)
    private String underMessage;

    @Column(name = "self_operated")
    @ApiModelProperty(name = "self_operated", value = "是否自营0否 1是", required = false)
    private Integer selfOperated;

    /**
     * 商品移动端详情
     */
    @Column(name = "mobile_intro")
    @ApiModelProperty(name = "mobile_intro", value = "商品移动端详情", required = false)
    private String mobileIntro;

    /**
     * 商品视频
     */
    @Column(name = "goods_video")
    @ApiModelProperty(name = "goods_video", value = "商品视频", required = false)
    private String goodsVideo;


    public GoodsDO() {
    }


    @PrimaryKeyField
    public Integer getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(Integer goodsId) {
        this.goodsId = goodsId;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public Integer getBrandId() {
        return brandId;
    }

    public void setBrandId(Integer brandId) {
        this.brandId = brandId;
    }

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    public String getGoodsType() {
        return goodsType;
    }

    public void setGoodsType(String goodsType) {
        this.goodsType = goodsType;
    }

    public Double getWeight() {
        return weight;
    }

    public void setWeight(Double weight) {
        this.weight = weight;
    }

    public Integer getMarketEnable() {
        return marketEnable;
    }

    public void setMarketEnable(Integer marketEnable) {
        this.marketEnable = marketEnable;
    }

    public String getIntro() {
        return intro;
    }

    public void setIntro(String intro) {
        this.intro = intro;
    }

    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }

    public Double getCost() {
        return cost;
    }

    public void setCost(Double cost) {
        this.cost = cost;
    }

    public Double getMktprice() {
        return mktprice;
    }

    public void setMktprice(Double mktprice) {
        this.mktprice = mktprice;
    }

    public Integer getHaveSpec() {
        return haveSpec;
    }

    public void setHaveSpec(Integer haveSpec) {
        this.haveSpec = haveSpec;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public Long getLastModify() {
        return lastModify;
    }

    public void setLastModify(Long lastModify) {
        this.lastModify = lastModify;
    }

    public Integer getViewCount() {
        return viewCount;
    }

    public void setViewCount(Integer viewCount) {
        this.viewCount = viewCount;
    }

    public Integer getBuyCount() {
        return buyCount;
    }

    public void setBuyCount(Integer buyCount) {
        this.buyCount = buyCount;
    }

    public Integer getDisabled() {
        return disabled;
    }

    public void setDisabled(Integer disabled) {
        this.disabled = disabled;
    }

    public Integer getQuantity() {
        return quantity;
    }

    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }

    public Integer getEnableQuantity() {
        return enableQuantity;
    }

    public void setEnableQuantity(Integer enableQuantity) {
        this.enableQuantity = enableQuantity;
    }

    public Integer getPoint() {
        return point;
    }

    public void setPoint(Integer point) {
        this.point = point;
    }

    public String getPageTitle() {
        return pageTitle;
    }

    public void setPageTitle(String pageTitle) {
        this.pageTitle = pageTitle;
    }

    public String getMetaKeywords() {
        return metaKeywords;
    }

    public void setMetaKeywords(String metaKeywords) {
        this.metaKeywords = metaKeywords;
    }

    public String getMetaDescription() {
        return metaDescription;
    }

    public void setMetaDescription(String metaDescription) {
        this.metaDescription = metaDescription;
    }

    public Double getGrade() {
        return grade;
    }

    public void setGrade(Double grade) {
        this.grade = grade;
    }

    public String getThumbnail() {
        return thumbnail;
    }

    public void setThumbnail(String thumbnail) {
        this.thumbnail = thumbnail;
    }

    public String getBig() {
        return big;
    }

    public void setBig(String big) {
        this.big = big;
    }

    public String getSmall() {
        return small;
    }

    public void setSmall(String small) {
        this.small = small;
    }

    public String getOriginal() {
        return original;
    }

    public void setOriginal(String original) {
        this.original = original;
    }

    public Integer getSellerId() {
        return sellerId;
    }

    public void setSellerId(Integer sellerId) {
        this.sellerId = sellerId;
    }

    public Integer getShopCatId() {
        return shopCatId;
    }

    public void setShopCatId(Integer shopCatId) {
        this.shopCatId = shopCatId;
    }

    public Integer getCommentNum() {
        return commentNum;
    }

    public void setCommentNum(Integer commentNum) {
        this.commentNum = commentNum;
    }

    public Integer getTemplateId() {
        return templateId;
    }

    public void setTemplateId(Integer templateId) {
        this.templateId = templateId;
    }

    public Integer getGoodsTransfeeCharge() {
        return goodsTransfeeCharge;
    }

    public void setGoodsTransfeeCharge(Integer goodsTransfeeCharge) {
        this.goodsTransfeeCharge = goodsTransfeeCharge;
    }

    public String getSellerName() {
        return sellerName;
    }

    public void setSellerName(String sellerName) {
        this.sellerName = sellerName;
    }

    public Integer getIsAuth() {
        return isAuth;
    }

    public void setIsAuth(Integer isAuth) {
        this.isAuth = isAuth;
    }

    public String getAuthMessage() {
        return authMessage;
    }

    public void setAuthMessage(String authMessage) {
        this.authMessage = authMessage;
    }

    public Integer getSelfOperated() {
        return selfOperated;
    }

    public void setSelfOperated(Integer selfOperated) {
        this.selfOperated = selfOperated;
    }

    public String getUnderMessage() {
        return underMessage;
    }

    public void setUnderMessage(String underMessage) {
        this.underMessage = underMessage;
    }

    public String getMobileIntro() {
        return mobileIntro;
    }

    public void setMobileIntro(String mobileIntro) {
        this.mobileIntro = mobileIntro;
    }

    public String getGoodsVideo() {
        return goodsVideo;
    }

    public void setGoodsVideo(String goodsVideo) {
        this.goodsVideo = goodsVideo;
    }

}